Online Purchase Processing System and Method

ABSTRACT

A system and method to use quick response (QR) codes encoded with merchant website identification codes and session GUID to register a user or code scanner with a merchant server, login the user or code scanner with the merchant server, and complete a purchase of an item or service within a virtual shopping cart of the merchant server. A code scanner can scan a QR code displayed on a device connected to the internet. An application server can receive an identification code from the code scanner and then transmit data indicating form fields to be filled in on a merchant webpage. A user profile can include data regarding the user and a payment instrument. The user profile data can prepopulate the form fields and the form field data can be transmitted to the merchant server to use for logging in the user and completing the purchase.

This application claims the benefit of GB Application No. 1119375.2,filed Nov. 10, 2011, and claims the benefit of U.S. ProvisionalApplication No. 61/587,416, filed Jan. 17, 2012. GB Application1119375.2 and U.S. Provisional Application No. 61/587,416 areincorporated herein by reference for all purposes.

BACKGROUND

Online purchasing of goods or services from an e-commerce websitegenerally includes at least three stages, namely registration, login,and purchase.

A user who accesses a conventional online merchant website for the firsttime can generally browse and select a number of items offered by themerchant, either goods or services, which the user wishes to purchase.The selected items are added to a virtual shopping cart. When thenuser's selection is complete, the user navigates to a checkout sectionof the merchant website. The user is usually required to register bycompleting a registration form. Registration particulars that can berequired vary from one merchant website to another but typically includethe user's first name, last name, email address, a selected password(usually entered twice, for safety), a physical address, and telephonenumber. The user can be required to formulate one or more securityquestions together with corresponding answers, or to answer somepredetermined security questions.

It is known that such a registration process is time-consuming andtedious, involving several steps, causing a significant proportion ofusers to become discouraged and to leave the registration process and toabandon the virtual shopping cart altogether without completing apurchase. The merchant is left with no information about users who donot complete the registration process.

It is nevertheless desirable for merchant websites to persist withcomprehensive registration requirements in order to be able to tracktheir registered users and monitor which users are showing interest inthe website, and to identify their likes and dislikes. Thus, aregistration process gives rise to a trade-off between user drop-off(i.e. users who do not complete the registration process) and theability to gain good insight into users who do complete the registrationprocess.

If, on the other hand, the user who navigates to the checkout section ofthe merchant website has previously registered with the site, the userwill still be required to login to the site in order to authenticate theuser and complete the user's purchase. This will require the user tomemorize a username (for example an email address) and a passwordcorresponding to the merchant website. As the user registers with moremerchant websites, the number of unique username and passwordcombinations that must be memorized increases, which is cumbersome. Inorder to alleviate this difficulty, the user can record the username andpassword combinations, for example on paper or digitally, resulting indecreased security. Alternatively, the user can employ the same usernameand password combination across multiple merchant websites, which iscontrary to best practice.

The applicant has appreciated the desirability of a simpler process forconducting online purchases than that described above.

OVERVIEW

Example embodiments are described herein. In one respect, an exampleembodiment takes the form of a method comprising (i) decoding, at a codescanner, a registration quick response (QR) code scanned by the codescanner from a webpage of a merchant server, (ii) transmitting, from thecode scanner to a call-back registration uniform resource locator (URL)of the merchant server, registration data to register a user withmerchant server, (iii) receiving, at the code scanner after registrationof the user, login credentials for logging the registered user onto themerchant server, and (iv) storing the login credentials at the codescanner.

In another respect, an example embodiment takes the form of a codescanner device comprising: (i) a scanner that scans a registration QRcode from a webpage of a merchant server, (ii) a processor, (iii) anon-transitory computer-readable data storage device comprisingcomputer-readable program instructions, wherein the program instructionsare executable by the processor to decode the registration QR code, and(iv) a network interface to transmit, to a call-back registration URL ofthe merchant server, registration data for registering a user with themerchant server, and to receive login credentials useable for loggingthe registered user onto the merchant server, wherein the data storagedevice stores the received login credentials.

In yet another respect, an example embodiment takes the form of a methodcomprising: (i) decoding, at a code scanner, a login QR code scanned bythe code scanner from a webpage of a merchant server, and (ii)determining, using the code scanner, whether the code scanner includeslogin credentials for logging onto the merchant server. If the codescanner determines that the code scanner includes the login credentialsfor logging onto the merchant server, then transmitting, from the codescanner to a call-back login URL of the merchant server, the logincredentials for logging onto merchant server. If the code scannerdetermines that the code scanner does not include the login credentialsfor logging onto the merchant server, then initiating, using the codescanner, a process to register a user with the merchant server.

In yet another respect, an example embodiment takes the form of a codescanner device comprising: (i) a scanner that scans a login QR code froma webpage of a merchant server, (ii) a network interface, (iii) aprocessor, and (iv) a non-transitory computer-readable data storagedevice comprising computer-readable program instructions, wherein theprogram instructions are executable by the processor to decode the loginQR code and to determine whether the code scanner device comprises logincredentials for logging onto the merchant server. If the processordetermines that the login credentials for logging onto the merchantserver are stored within the data storage device, then the networkinterface transmits, to a call-back login URL of the merchant server,the login credentials for logging onto merchant server. If the processordetermines that the login credentials for logging onto the merchantserver are not stored within the data storage device, then the processorinitiates a process to register a user with the merchant server.

In yet another respect, an example embodiment takes the form of a methodcomprising: (i) decoding, at a code scanner, a checkout QR code scannedby the code scanner from a webpage of a merchant server, (ii)transmitting, from the code scanner to a call-back checkout URL of themerchant server, purchase-data to purchase an item within a virtualshopping cart of the merchant server, (iii) displaying, at the codescanner, a payment amount due that is to be paid to purchase the itemwithin the virtual shopping cart, and (iv) transmitting, from the codescanner to the merchant server, payment instrument data for processingpayment of the payment amount to complete a purchase of the item withinthe virtual shopping cart.

In yet another respect, an example embodiment takes the form of a codescanner device comprising: (i) a scanner that scans a checkout QR codefrom a webpage of a merchant server, (ii) a processor, (iii) anon-transitory computer-readable data storage device comprisingcomputer-readable program instructions, wherein the program instructionsare executable by the processor to decode the checkout QR code, (iv) anetwork interface that transmits, to a call-back checkout URL,purchase-data to purchase an item within a virtual shopping cart of themerchant server, and (v) a display device that displays a payment amountthat is to be paid to purchase the item within the virtual shoppingcart. The network interface transmits, to the merchant server, paymentinstrument data for processing payment of the payment amount to completea purchase of the item within the virtual shopping cart.

In yet another respect, an example embodiment takes the form of a methodcomprising: (i) storing, in a non-transitory computer-readable datastorage device, a first merchant website identification code and a firstcall-back URL, wherein the first merchant website identification codeand the first call-back URL are associated with each other, (ii)receiving, at the application server from a first code scanner, thefirst merchant website identification code, (iii) selecting, from thedata storage device, the first call-back URL associated with the firstmerchant website identification code, and (iv) transmitting, from theapplication server to the first code scanner in response to receivingthe first merchant website identification code, the first call back URL.

In still yet another respect, an example embodiment takes the form of anapplication server system comprising: (i) a processor, (ii) anon-transitory computer-readable data storage device comprising amerchant website identification code, a call-back URL, andcomputer-readable program instructions executable by the processor,wherein the merchant website identification code and the call-back URLare associated with each other, and (iii) a network interface thatreceives, from a code scanner, the merchant website identification code.The processor executes the program instructions to select the call-backURL in response to the network interface receiving the merchant websiteidentification code. The processor executes the program instructions tocause the network interface to transmit, to the code scanner, thecall-back URL selected in response to the network interface receivingthe merchant website identification code.

These as well as other aspects and advantages will become apparent tothose of ordinary skill in the art by reading the following detaileddescription, with reference where appropriate to the accompanyingdrawings. Further, it should be understood that the embodimentsdescribed in this overview and elsewhere are intended to be examplesonly and do not necessarily limit the scope of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

Example embodiments are described herein with reference to the drawings,in which:

FIG. 1 is a schematic representation of a system for conducting onlinepurchases from a merchant website;

FIG. 2 is a representation of a webpage of a merchant portal websitehosted on an application server in the system of FIG. 1;

FIG. 3 illustrates a subsequent page of the merchant portal website ofFIG. 2;

FIG. 4 illustrates a further page of the merchant portal website of FIG.3;

FIG. 5 is a flow chart of functions to carry out registering a user at amerchant website in accordance with a first embodiment of the system ofFIG. 1;

FIG. 6 is a flow chart of functions to carry out logging on to amerchant website in accordance with the first embodiment of the systemof FIG. 1;

FIG. 7 is a flow chart of functions to carry out a purchase transactionfrom a merchant website in accordance with the first embodiment of thesystem of FIG. 1;

FIG. 8 is a is a flow chart of functions to carry out registering at amerchant website in accordance with a second embodiment of the system ofFIG. 1;

FIG. 9 is a flow chart of functions to carry out logging on to amerchant website in accordance with the second embodiment of the systemof FIG. 1;

FIG. 10 is a flow chart of functions to carry out a purchase transactionfrom a merchant website in accordance with the second embodiment of thesystem of FIG. 1;

FIG. 11 is an alternative example of the further page of the merchantportal website to that shown in FIG. 4;

FIG. 12 illustrates example displays provided by a scanner applicationin accordance with an example embodiment;

FIG. 13 illustrates additional example displays provided by a scannerapplication in accordance with an example embodiment;

FIG. 14 illustrates an example quick response (QR) code;

FIG. 15 is a block diagram of a code scanner in accordance with anexample embodiment;

FIG. 16 is a block diagram of an application server in accordance withan example embodiment;

FIG. 17 illustrates additional example displays provided by a scannerapplication in accordance with an example embodiment; and

FIG. 18 is a block diagram of a system device in accordance with anexample embodiment.

DETAILED DESCRIPTION I. Introduction

This description describes, among other things, example embodiments withrespect to registering with a merchant server, logging onto or onto amerchant server, or completing an online purchase of an item from themerchant server. In this description, the articles “a” or “an” are usedto introduce elements of the example embodiments. The intent of usingthose articles is that there is one or more of the elements. The intentof using the conjunction “or” within a described list of at least 2terms is to indicate that any of the listed terms or any combination ofthe listed terms. The terms “first” and “second” are used to distinguishrespective elements and are not used to denote a particular order ofthose elements.

The following abbreviations or acronyms are used in the description:

CVC—Card Verification Code;

FIG.—Figure;

FIGS.—Figures;

GUID—Globally Unique Identifier;

Inc.—Incorporated;

PIN—Personal Identification Number;

QR—Quick Response;

Scanner App—Scanner Application Program; and

URL—Uniform Resource Locator.

II. Example Architecture

FIG. 1 depicts a schematic representation of a system 100 for conductingonline purchases from a merchant website in accordance with exampleembodiments described herein. The system 100 includes an applicationserver 102, a merchant server 104 which a merchant uses to operate anonline merchant website (not shown) offering goods or services for sale,and a code scanner 106 device configured to scan and decode QuickResponse (QR) codes which are well known and widely used. The codescanner 106 can take the form of a conventional smartphone handsetprovisioned with software for scanning QR codes, a web browser, and awireless connection to the internet. The code scanner 106 can bereferred to as “mobile wireless communication device,” a “mobilesmartphone handset” or, more simply, a “mobile smartphone” or“smartphone.” As an example, the mobile wireless communication devicecan be a personal digital assistant or a cellular telephone. As anotherexample, the mobile wireless communication device can be an iPhone, suchas the iPhone5, or an iPad sold by Apple Inc., Cupertino, Calif., UnitedStates. The code scanner 106 does not need to be a mobile device, butcan be a device that remains attached to a stationary internet-enableddevice. The application server 102, the merchant server 104, and thecode scanner 106 can communicate with each other using a communicationnetwork 108. The communication network 108 can comprise a wide-areanetwork, such as the internet.

Communication between the application server 102 and the code scanner106 can be facilitated by using a server-hosted program (not shown) anda scanner application program (a ‘scanner app’) that is installed andexecuted on the code scanner 106. In another respect, communicationbetween the application server 102 and code scanner 106 can occur usingnetwork interface 152 (shown in FIG. 15) and network interface 176(shown in FIG. 17).

A user can download a copy of the scanner app from a download repository(for example, data storage device 178 in FIG. 16) and install thescanner app on the code scanner 106. On, during, or after installation,the scanner app creates a user profile 110 on the code scanner 106 andprompts the user to manually provide personal attributes such as, theuser's first name, the user's last name, a default username and passwordcombination, an e-mail address, a physical address and particulars ofone or more payment instruments such as credit cards, debit cards,e-wallets and the like. In accordance with at least some exampleembodiments, the user profile 110 (for example, the data in the userprofile 110) is stored locally on the code scanner 106 and is not passedto the application server 102.

The application server 102 hosts a merchant portal website 120 thatenables online merchants to register and create individual merchantprofiles that are maintained by the application server 102 in a merchantdatabase 112. The merchant portal website 120 can be referred to as a“portal website.” Merchant registration and creation of a merchantprofile in the merchant database 112 can be performed online by themerchant portal website 120. A merchant can use a merchant computingdevice 130 including a display for displaying websites to displaymerchant portal websites and an input device for selecting or enteringdata onto the merchant portal websites.

FIG. 2 shows an example webpage 200 of the merchant portal website 120.The webpage 200 can display a registration form 201 that a merchant cancomplete in order to register with the merchant portal website 120. Thewebpage 200 can be a homepage of the merchant portal website 120. As anexample, the registration form 201 can include the following fields: amerchant's business name 202, a merchant's business address 204, and adescription of the merchant's business 206. As an example, the businessdescription can be a shoe store, an automobile parts store, a sportsequipment store, or some other business description. Other examples offields on the registration form 201 are possible. Entering data into theregistration form 201 can occur, for example, by typing data orselecting data from a list of predetermined data.

FIG. 3 shows another webpage 208 of the merchant portal website 120. Themerchant can use webpage 208 to add, delete, or edit any of themerchant's websites online that the merchant wishes to configure forQR-based registration, login (for example, logon) or purchasing. Thewebpage 208 displays merchant websites 210 and 212, shown as MerchantSite 1 and Merchant Site 2 respectively, that have been registered withmerchant portal website 120. The webpage 208 displays an icon 214 thatis selectable (for example, by a merchant) to configure an additionalmerchant website for QR-based registration, login, or purchasing. Icon214 can be a hyperlink.

FIG. 4 illustrates another example webpage 216 of the merchant portalwebsite 120. The webpage 216 can display a configuration form 228 forconfiguring websites (for example, websites 210 and 212) registered withmerchant portal website 120. As an example, the configuration form 228can include the following fields: a name of the respective merchantwebsite 218, an image or logo 220 associated with the respectivemerchant website, a URL 222 of a call-back registration page of themerchant website, a URL 224 of a call-back login page of the merchantwebsite, and a URL 226 of a call-back checkout page of the merchantwebsite. An image or logo entered via image or logo field 220 can bedisplayed on a scanner app display (for example, scanner app display 950shown in FIG. 12).

A merchant can, in this manner, configure one or more online websitesfor QR-based registration, login or checkout by providing theseadditional configuration parameters for each merchant website. Theapplication server 102 can assign a unique merchant websiteidentification code to each merchant website configured in this mannerand the website identification code is stored in the merchant's profilein the merchant database 112. Additionally or alternatively, eachmerchant website identification code can be provided to and stored witha QR source that serves QR codes to the merchant server 104. For thesake of being brief, a merchant website identification code can bereferred to as a “website identification code” or an “identificationcode.”

The merchant server 104 can maintain, in a customer database 114,individual profiles of customers registered with the merchant websites.In this description the terms ‘user’ and ‘customer’ and ‘purchaser’ areused interchangeably depending on the context. For example a user, onceregistered with the merchant website, becomes a customer of themerchant.

FIG. 14 illustrates an example QR code 999. QR code 999 can be encodedas a registration QR code. Alternatively, QR code 999 can be encoded asa log-in QR code. Alternatively, QR code 999 can be encoded as acheckout QR code.

Next, FIG. 15 is a block diagram depicting an example embodiment of codescanner 106. As shown in FIG. 15, code scanner 106 includes (i) aprocessor 150, (ii) a network interface 152 for transmitting data to andreceiving data from communication network 108, (iii) a user interface154, (iv) a scanner 156 configured to scan (for example, capture) QRcodes, and (v) a data storage device 158, all of which can be linkedtogether via a system bus or other connection mechanism 160. Datastorage device 158 includes computer-readable program instructions(CRPI) 162, the scanner app 164, and a user profile 110. CRPI 162 caninclude the scanner app 164. Data storage device 158 can comprise anon-transitory computer-readable storage medium readable by processor150. Each computer-readable storage medium described herein can comprisevolatile and/or non-volatile storage components, such as optical,magnetic, organic or other memory or disc storage, which can beintegrated in whole or in part with a processor.

Each processor described herein can comprise one or more general purposeprocessors (for example, INTEL single core microprocessors or INTELmulticore microprocessors) or one or more special purpose processors(for example, digital signal processors). Processor 150 is configured toexecute CRPI 162.

Next, FIG. 16 is a block diagram depicting an example embodiment ofapplication server 102. As shown in FIG. 16, application server 102 caninclude (i) a processor 175, (ii) a network interface 176 fortransmitting data to and receiving data from communication network 108,(iii) a user interface 177, and (iv) a data storage device 178, all ofwhich can be linked together via a system bus or other connectionmechanism 179. Data storage device 178 can include (i) CRPI 180, (ii)the scanner app 164 for downloading to code scanners, (iii) merchantportal websites 181, such as merchant portal website 120, (iv) userprofiles 182, (v) merchant website identification codes 183 for merchantwebsites, checkout websites, or some other websites, and (vi) merchantdatabase 112 including merchant profiles 184. CRPI 180 can include thescanner app 164. Data storage device 178 can comprise a non-transitorycomputer-readable storage medium readable by processor 175. Processor175 is configured to execute CRPI 180.

Next, FIG. 18 is a block diagram depicting a system device 190 inaccordance with an example embodiment. As example, the merchant server104, the internet-enabled device 116, or the merchant computing device130 can be configured as system device 190. As shown in FIG. 18, systemdevice 190 includes (i) a processor 191, (ii) a user interface 192,(iii) a network interface 193 for transmitting data to and receivingdata from communication network 108, (iv) and a data storage device 194,all of which can be linked together via a system bus or other connectionmechanism 195. Data storage device 194 includes CRPI 196. Data storagedevice 194 can comprise a non-transitory computer-readable storagemedium readable by processor 191. Processor 191 is configured to executeCRPI 196. User interface 192 can comprise a display device that isconfigured to display webpages.

In accordance with an embodiment in which the merchant server 104 isconfigured as the system device 190, the CRPI 196 can comprise programinstructions to carry out the functions described herein as beingcarried out by the merchant server 104. In accordance with an embodimentin which the internet-enabled device 116 is configured as the systemdevice 190, CRPI 196 can comprise program instructions to carry out thefunctions described herein as being carried out by the Internet-enableddevice 116. In accordance with an embodiment in which the merchantserver 104 is configured as the merchant computing device 130, the CRPI196 can comprise program instructions to carry out the functionsdescribed herein as being carried out by the merchant computing device130.

III. Example Operation

A. QR-Based Registration

The system 100 can be used to register a non-registered user at amerchant website by use of the code scanner 106. Upon being registeredwith the merchant website, the non-registered user becomes a registereduser. In use, the user (for example, a would-be purchaser of goods orservices) uses a web browser on the internet-enabled device 116, such asa desktop computer, laptop computer or tablet, to browse a merchantwebsite that has been configured for QR-based registration, login orcheckout as described above. The user browses the website for goods orservices offered by the merchant and can select items to purchase byadding these items to a virtual shopping cart associated with thewebsite. If the user is a first-time visitor to the merchant website,for example, a non-registered user, it may be necessary for the user toregister on the website prior to completing the purchase. The phrase “aninternet-enabled device connected to an internet” is used to refer to aninternet-enabled device that is configured to connect to the internetwirelessly (for example, using an air interface), via a wire connection(for example, a coaxial cable or an Ethernet cable), or via some othermanner.

FIG. 5 is a flow chart depicting a set of functions 550 that can becarried out in accordance with an example embodiment. The set offunctions 550 can be performed to register the user at a merchantwebsite. Registering the user at the merchant website can be referred toas registering the user at the merchant server or registering the userwith the merchant. The set of functions 550 are shown within blocks 500through 538. A description of those blocks now follows.

At block 500, the merchant server 104 provides a registration form of amerchant website. The registration form can be provided to theinternet-enabled device 116 via the communication network 108. Theinternet-enabled device 116 can display a registration webpageincluding, for example, the registration form displaying the userattributes (for example, data fields) the merchant uses to register theuser. Some of the data fields of the registration form can be mandatoryfor registering the user and some of the data fields of the registrationform can be optional for registering the user. As an example, the datafields for the user's first or last names may be mandatory data fields.As another example, the data fields for a selected username and passwordmay be mandatory data fields. Alternatively, the data fields for theselected username and password may be optional such that the merchantserver 104 assigns the user a username and password for storage in auser profile 110. The user can, of course, fill in the data fieldsmanually at the internet-enabled device 116 in order to register on themerchant website.

At block 502, the merchant server 104 provides a registration QR code. Aunique identification code that was assigned to the merchant website bythe application server 102 and a globally unique identifier (‘GUID’)assigned by the merchant server 104 and that operates as a sessionidentifier are encoded in the registration QR code. The registration QRcode can be generated by the merchant server 104 or can be served to themerchant server 104 by a separate source of QR codes (not shown). Theregistration QR code and registration form can be provided, individuallyor in combination, to the internet-enabled device 116, whichsubsequently displays the registration form and the registration QRcode. The registration QR code and registration form can be provided tothe internet-enabled device 116 as part of a registration webpage theinternet-enabled device 116 can display.

At block 504, the user can use the scanner app 164 and the scanner 156to scan the registration QR code on the registration webpage of themerchant website. At block 506, the scanner app 164 decodes the scannedregistration QR code to recover the encoded data that it containsnamely, the merchant website identification code and the session GUID. AGUID encoded in a QR code can be transmitted to the merchant server 104,in communications from the code scanner 106, so that the merchant server104 can determine which internet-enabled device to send data forupdating a webpage or display at the internet-enabled device.

At block 508, the code scanner 106 or the scanner app 164 transmits themerchant website identification code to the application server 102 andrequests the call-back registration URL 222 of the merchant website. Atblock 510, the application server 102 uses the merchant websiteidentification code to perform a lookup in the merchant profile in themerchant database 112. At block 512, the application server 102transmits the call-back registration URL 222 of the merchant website tothe code scanner 106. The code scanner 106 provides the call-backregistration URL to the scanner app 164 for further processing.

At block 514, the scanner app 164 then requests, from the merchantserver 104, particulars of the registration data fields shown on theregistration form provided to the internet-enabled device 116. The codescanner 106 transmits that request to the call-back registration URL ofthe merchant server 104. The code scanner 106 can transmit the sessionGUID to the merchant server 104 with or separately from the request forregistration data fields.

At block 516, the merchant server 104 transmits, to the code scanner106, a list of the registration data fields. Each registration datafield can be flagged as being either mandatory or optional. The merchantserver 104 can select the list of registration data fields based on thesession GUID received from the code scanner at block 514. The codescanner 106 provides the list of the registration data fields to thescanner app 164. At block 518, the scanner app 164 displays theregistration data fields on the user interface 154, indicating whichdata fields, if any, are mandatory. At block 520, the scanner app 164pre-populates, as far as possible, the displayed data fields with datastored in the user profile 110.

At block 522, the user can review the pre-populated registration datafields and amend the displayed data, if necessary, and complete any datafields which are unpopulated. After reviewing and amending the datadisplayed in the registration data fields, the user can accept thedisplayed data. At block 524, the scanner app 164 causes the codescanner 106 to transmit the displayed registration data to the call-backregistration URL 222 of the merchant website on the merchant server 104in addition to the session GUID recovered from the scanned registrationQR code. The code scanner 106 can transmit the session GUID to themerchant server 104 with or separately from the displayed registrationdata. After receiving the registration data from the code scanner 106,the merchant server 104 can provide the received registration data tothe Internet-enabled device 116 to update the registration webpage beingdisplayed at the internet-enabled device 116. The registration webpagecan be configured to request (for example, periodically) receivedregistration data from the call-back registration URL 222 of themerchant server 104. Additionally or alternatively, call-backregistration URL of the merchant server 104 can be configured to forwardthe received registration data to the internet-enabled device 116 forupdating the displayed registration webpage.

At block 525, the merchant server 104 can determine whether themandatory registration data for registering the user with the merchantserver 104 has been received for the user.

If all of the mandatory registration data has been received by themerchant server 104, the merchant server 104 can make a determinationthat registration of the user was successfully completed and proceed toblock 530. At block 530, the registration page of the merchant websiteupdates to indicate to the user that registration on the merchantwebsite has completed successfully.

If the merchant server 104 determines that it needs at least a portionof the mandatory registration data to register the user, the merchantserver 104 can proceed to block 526, where the registration page of themerchant website will refresh and populate those mandatory registrationfields for which data was received from the scanner app. At block 528,the merchant server 104 can request the user to manually fill in theremaining registration fields on the website registration page.

At block 532, upon or after successfully completing registration on themerchant website, the merchant website authorises the newly-registereduser's website login credentials, namely, the user's username andpassword and can return these credentials to the scanner app 164. Atblock 534, the code scanner can store the user's login credentials intothe user profile 110 for subsequent use on the particular merchantwebsite.

At block 536, the merchant server 104 can, optionally, return to thescanner app 164 any data that the user inputs manually to fill in anyunpopulated website registration fields.

At block 538, the code scanner 106 stores the manually entered data,returned from the merchant server 104, into the user profile 110. Thescanner app 164 can cause the code scanner 106 to store that data, whichwill be available for subsequent use. For example, suppose two of thewebsite registration fields on the merchant website are a securityquestion and a corresponding answer and, suppose further, that the userprofile 110 does not include a stored security question and answer. Asdescribed, the user can manually fill in the security question andanswer fields in the scanner app 164 or on the registration webpage ofthe merchant website. If the user fills in the two fields in the scannerapp, the scanner app 164 updates the user profile 110 to include theseadditional two data items. If, on the other hand, the user fills in thequestion and answer fields on the registration webpage of the merchantwebsite, the merchant server 104 transmits the two data items to thescanner app 164, which updates the user profile 110. In either case, thesecurity question and corresponding answer will be availableautomatically to pre-populate these fields in any subsequent websiteregistration where these data items can be entered into data fields,regardless of whether the data fields are optional or mandatory datafields.

B. QR-Based Login

If the user is not a first-time visitor to the merchant website and haspreviously registered with the merchant website, the user can logon tothe merchant website in order to make a purchase. FIG. 6 is a flow chartdepicting a set of functions 650 that can be carried out in accordancewith an example embodiment. The set of functions 650 can be performed inorder for the user to logon to the merchant website. As shown in FIG. 6,the set of functions 650 pertain to logging on to a merchant website andthe user accessing, or being directed to, the login page of the merchantwebsite by a web browser on the internet-enabled device 116. The set offunctions 650 are shown within blocks 600 through 622. A description ofthose blocks now follows.

At block 600, the merchant server 104 provides a login page of merchantwebsite. The login page can be provided to the internet-enabled device116 via the communication network 108. The internet-enabled device 116can display the login page including, for example, a login formdisplaying the user attributes (i.e. data fields) the merchant uses tologin the user. Some of these data fields, such as the user's username,and password, can be mandatory. Other data fields can be optional. Theuser can, of course, fill in the data fields manually in order to loginto the merchant website.

At block 602, the merchant server 104 provides a login QR code thatencodes the identification code that was assigned to the merchantwebsite by the application server 102 and a GUID that operates as asession identifier. The login QR code can be generated by the merchantserver 104 or can be served to the merchant server 104 by a separatesource of QR codes (not shown). The login QR code and login form can beprovided, individually or in combination, to the internet-enabled device116, which subsequently displays the login form and the login QR code.The login QR code and login form can be provided to the internet-enableddevice 116 as part of a login webpage the internet-enabled device 116can display.

At block 604, the user can use the scanner app 164 and the scanner 156to scan the login QR code on the login page of the merchant website. Atblock 606, the scanner app 164 decodes the scanned login QR code torecover the encoded data that it contains, namely, the merchant websiteidentification code and the session GUID.

At block 608, the code scanner 106 or the scanner app 164 transmits themerchant website identification code to the application server 102 andrequests the call-back login URL 224 of the merchant website. At block610, the application server 102 uses the merchant website identificationcode to perform a lookup in the merchant profile in the merchantdatabase 112. At block 612, the application server 102 transmits thecall-back login URL 224 of the merchant website to the code scanner 106.The code scanner 106 provides the call-back login URL 224 to the scannerapp 164 for further processing.

At block 614, the scanner app 164 performs a lookup in the user profile110 to check whether the profile contains login credentials associatedwith the login webpage of the merchant website that the user is seekingto logon to. If such login credentials are found in the user profile110, the credentials, together with the session GUID, are transmitted(at block 616) to the call-back login URL of the merchant website forauthentication. If the merchant server 104 successfully authenticatesthe transferred login credentials at block 618, the login webpage of themerchant website updates to indicate to the user that login to themerchant website has completed successfully (block 620). As an example,after authenticating the login credentials received from the codescanner 106, the merchant server 104 can provide data to theinternet-enabled device 116 to update the login webpage to indicate userlogin was successful. The login webpage can be configured to request(for example, periodically) status of authenticating the user's logincredentials. Updating the login webpage can include providing the userwith access to a shopping webpage via the merchant website.

Returning to block 614, if, on the other hand, the user profile 110 doesnot contain login credentials associated with the login page of themerchant website, the scanner app 164 initiates, at block 622, a websiteregistration process as if the user had scanned a registration QR codeon the registration page of the merchant website, as described above.

C. QR-Based Purchasing

FIG. 7 is a flow chart depicting a set of functions 750 that can becarried out in accordance with an example embodiment. The set offunctions 750 can be performed to complete a purchase transaction ofgoods or services, contained in a virtual shopping cart, that the userwishes to acquire from the merchant or merchant website. The user cannavigate to a checkout webpage of the merchant website by means of a webbrowser on the internet-enabled device 116. The set of functions 750 areshown within blocks 700 through 740. A description of those blocks nowfollows.

At block 700, the merchant server 104 provides a virtual shopping cartand an amount due. As an example, the shopping cart and the amount duecan be provided to the internet-enabled device 116 via the checkoutwebpage that displays the contents of the shopping cart as well as thetotal amount due and payable for the purchase. The merchant server 104can provide purchase data fields for manually completing the purchase ofitems in the shopping cart using the internet-enabled device 116.

At block 702, the merchant server 104 provides a checkout QR code. Aunique identification code that was assigned to the merchant website bythe application server 102 and a GUID that operates as a sessionidentifier are encoded within the checkout QR code. The checkout QR codecan be generated by the merchant server 104 or can be served to themerchant server 104 by a separate source of QR codes (not shown). Thecheckout QR code can be provided to the internet-enabled device 116,which subsequently displays the checkout QR code for scanning by thecode scanner 106. The checkout QR code can be provided to theinternet-enabled device 116 as part of a checkout webpage displayableusing the internet-enabled device 116.

At block 704, the user can use the scanner 156 or the scanner app 164 toscan the checkout QR code on the checkout webpage of the merchantwebsite. At block 706, the scanner app 164 decodes the scanned checkoutQR code to recover the encoded data that it contains, namely, themerchant website identification code and the session GUID.

At block 708, the code scanner 106 or the scanner app 164 transmits themerchant website identification code to the application server 102 andrequests the call-back checkout URL 226 of the merchant website. Atblock 710, the application server 102 uses the merchant websiteidentification code to perform a lookup in the merchant profile in themerchant database 112. At block 712, the application server 102transmits the call-back checkout URL 226 of the merchant website to thecode scanner 106. The code scanner 106 provides the call-back checkoutURL to the scanner app 164 for further processing.

At block 714, the scanner app 164 requests particulars of the requiredpurchase-data fields from the call-back checkout URL 226 of the merchantwebsite. The code scanner 106 can transmit the session GUID to themerchant server 104 with or separately from the request for particularsof the required purchase-data fields. At block 716, the merchant server104 transmits a list of the required website purchase-data fields to thescanner app 164, which typically include a shipping address, a shippingmethod, an amount due, and details of a payment instrument to be used(for example, a credit or debit card number, a card expiry date, acardholder's name, a card verification code (CVC), or a personalidentification number (PIN). The shipping method data field isaccompanied by a choice of shipping methods offered by the merchant andthe amount due data field is accompanied by the amount due and payableas displayed on the checkout page of the merchant website.

At block 718, the scanner app 164 displays the website purchase-datafields on the user interface 154. At block 720, the scanner app 164pre-populates as far as possible, the displayed data fields with datastored in the user profile 110. In particular, the default shippingaddress that the scanner app 164 uses to pre-populate the shippingaddress data field can be the user's physical address that is stored inthe user profile 110. The user can then review the pre-populated datafields and amend the displayed data if necessary and complete any datafields which are unpopulated. For example, if the user profile 110contains more than one physical address, the user can select a differentshipping address from a drop-down list the scanner app 164 displays onthe user interface 154, and can select a shipping method from a furtherdrop-down list.

At block 722, after reviewing and amending the displayed shippinginformation, if necessary, or any other populated purchase-data fields,the user can accept the displayed data. At block 724, the scanner app164 transmits the purchase-data, including the shipping information,entered into the purchase-data fields, together with the session GUID,to the call-back checkout URL 226 of the merchant website on themerchant server 104. The code scanner 106 can transmit the session GUIDto the merchant server 104 with or separately from the purchase-data. Atblock 725, the merchant server 104 can determine whether the shippingdetails have changed. If the merchant server 104 detects that theshipping address or the shipping method has changed, the merchant server104 can, if appropriate, update the purchase amount displayed on thecheckout webpage of the merchant website (block 726) and the updatedpurchase amount is transmitted back to the code scanner 106 (block 728)for display by the scanner app 164 (block 730). If the merchant server104 detects that the shipping details have not changed, the process cancontinue at block 732.

At block 732, the user can review the purchase amount and accept theamount for payment. The scanner app 164 then transmits, at block 736,the details of a payment instrument to be used for payment (for example,a credit or debit card number, a cardholder's name, a card expiry date,a CVC, or a PIN, as stored in the user profile 110) and the session GUIDto the call-back checkout URL 226 of the merchant website. The codescanner 106 can transmit the session GUID to the merchant server 104with or separately from the payment instrument data. If the user profile110 in the code scanner 106 contains details of more than one paymentinstrument, the user can be prompted to select a preferred paymentinstrument from a drop-down list displayed by the scanner app 164 (block734).

Once the details of the selected payment instrument have been receivedat the call-back checkout URL, the merchant server 104 sends theparticulars of the financial transaction (for example, the purchaseamount, merchant and payment details) to a payment processor (not shown)for processing (at block 738). At block 739, the merchant server 104(for example, the payment processor) can determine whether the paymentwas successful. The payment processor transmits a payment statusindicator, for example either successful or unsuccessful. If the paymentstatus is successful, the checkout webpage of the merchant websiterefreshes to indicate that the user's purchase has completedsuccessfully (block 740). If, on the other hand, the merchant server 104determines that the payment status is unsuccessful, the checkout webpagerefreshes to request the user to select a different payment instrumentand re-attempt payment (block 734). Re-attempting payment can occurusing the scanner app 164 or the internet-enabled device 116.

If the merchant website requires the user to login before completing thepurchase transaction, the user can be re-directed to the website loginpage. The user can login to the merchant website by scanning the loginQR code displayed on the login page as described above. If the userprofile 110 does not contain login credentials associated with theidentification code of the merchant website, the scanner app 164 caninitiate a website registration process as if the user had scanned aregistration QR code on the registration page of the merchant website,as described above.

D. Additional Example Operation

FIGS. 8, 9, and 10 are flow charts that depict sets of functions thatcan be carried out in accordance with an alternative embodiment in whichthe registration, login and checkout QR codes displayed on theregistration, login and checkout webpages of the merchant server 104,respectively, encode the call-back URL of the respective webpage of themerchant server 104, together with the merchant website identificationcode and a session GUID issued by the merchant server 104.

FIG. 8 is a flow chart depicting a set of functions 850 that can beperformed to register the user at a merchant website. The set offunctions 850 are shown within blocks 800 through 806 and 814 through838. A description of those blocks now follows.

At block 800, the merchant server 104 provides a registration form of amerchant website. The registration form can be provided to theinternet-enabled device 116 via the communication network 108. Theinternet-enabled device 116 can display a registration webpageincluding, for example, the registration form displaying the userattributes (for example, data fields) the merchant uses to register theuser. Some of the data fields of the registration form can be mandatoryfor registering the user and some of the data fields of the registrationform can be optional for registering the user. As an example, the datafields for the user's first or last names can be mandatory data fields.As another example, the data fields for a selected username and passwordcan be mandatory data fields. Alternatively, the data fields for theselected username and password can be optional such that the merchantserver 104 assigns the user a username and password for storage in theuser profile 110. The user can, of course, fill in the data fieldsmanually at the internet-enabled device 116 in order to register on themerchant website.

At block 802, the merchant server 104 provides a registration QR code. Aunique identification code that was assigned to the merchant website bythe application server 102, a GUID assigned by the merchant server 104and that operates as a session identifier, and a call-back registrationURL are encoded in the registration QR code. The registration QR codecan be generated by the merchant server 104 or can be served to themerchant server 104 by a separate source of QR codes (not shown). Theregistration QR code and registration form can be provided, individuallyor in combination, to the internet-enabled device 116, whichsubsequently displays the registration form and the registration QRcode. The registration QR code and registration form can be provided tothe internet-enabled device 116 as part of a registration webpage theinternet-enabled device 116 can display.

At block 804, the user can use the scanner app 164 and the scanner 156to scan the registration QR code on the registration webpage of themerchant website. At block 806, the scanner app 164 decodes the scannedregistration QR code to recover the encoded data that it containsnamely, the merchant website identification code, the session GUID, andthe call-back registration URL.

At block 814, the scanner app 164 then requests, from the merchantserver 104, particulars of the registration data fields shown on theregistration form provided to the internet-enabled device 116. The codescanner 106 transmits that request to the call-back registration URL ofthe merchant server 104. The code scanner 106 can transmit the sessionGUID to the merchant server 104 with or separately from the request forregistration data fields.

At block 816, the merchant server 104 transmits, to the code scanner106, a list of the registration data fields. Each registration datafield can be flagged as being either mandatory or optional. The codescanner 106 provides the list of the registration data fields to thescanner app 164. At block 818, the scanner app 164 displays theregistration data fields on the user interface 154, indicating whichdata fields, if any, are mandatory. At block 820, the scanner app 164pre-populates, as far as possible, the displayed data fields with datastored in the user profile 110.

At block 822, the user can review the pre-populated registration datafields and amend the displayed data, if necessary, and complete any datafields which are unpopulated. After reviewing and amending the datadisplayed in the registration data fields the user can accept thedisplayed data. At block 824, the scanner app 164 causes the codescanner 106 to transfer the displayed registration data to the call-backregistration URL of the merchant website on the merchant server 104. Thecode scanner 106 can transmit the session GUID to the merchant server104 with or separately from the displayed registration data. Afterreceiving the registration data from the code scanner 106, the merchantserver 104 can provide the received registration data to theinternet-enabled device 116 to update the registration webpage beingdisplayed at the internet-enabled device 116. The registration webpagecan be configured to request (for example, periodically) receivedregistration data from the call-back registration URL of the merchantwebsite. Additionally or alternatively, the call-back registration URLof the merchant website can be configured to forward the receivedregistration data to the internet-enabled device 116 for updating thedisplayed registration webpage.

At block 825, the merchant server 104 can determine whether themandatory registration data for registering the user with the merchantserver 104 has been received for the user.

If all of the mandatory registration data has been received by themerchant server 104, the merchant server 104 can make a determinationthat registration of the user was successfully completed and proceed toblock 830. At block 830, the registration page of the merchant websiteupdates to indicate to the user that registration on the merchantwebsite has completed successfully.

If the merchant server 104 determines that it needs at least a portionof the mandatory registration data to register the user, the merchantserver 104 can proceed to block 826, where the registration page of themerchant website will refresh and populate those mandatory registrationfields for which data was received from the scanner app. At block 828,the merchant server 104 can request the user to manually fill in theremaining registration fields on the website registration page.

At block 832, upon or after successfully completing registration on themerchant website, the merchant website authorises the newly-registereduser's website login credentials, namely, the user's username andpassword and can return these credentials to the scanner app 164. Atblock 834, the code scanner can store the user's login credentials intothe user profile 110 for subsequent use on the particular merchantwebsite.

At block 836, the merchant server 104 can, optionally, return to thescanner app 164 any data that the user inputs manually to fill in anyunpopulated website registration fields.

At block 838, the code scanner 106 stores the manually entered data,returned from the merchant server 104, into the user profile 110. Thescanner app 164 can cause the code scanner 106 to store that data, whichwill be available for subsequent use. For example, suppose two of thewebsite registration fields on the merchant website are a securityquestion and a corresponding answer and, suppose further, that the userprofile 110 does not include a stored security question and answer. Asdescribed, the user can manually fill in the security question andanswer fields in the scanner app 164 or on the registration webpage ofthe merchant website. If the user fills in the two fields in the scannerapp, the scanner app 164 updates the user profile 110 to include theseadditional two data items. If, on the other hand, the user fills in thequestion and answer fields on the registration webpage of the merchantwebsite, the merchant server 104 transmits the two data items to thescanner app 164, which updates the user profile 110. In either case, thesecurity question and corresponding answer will be availableautomatically to pre-populate these fields in any subsequent websiteregistration where these data items can be entered into data fields,regardless of whether the data fields are optional or mandatory datafields.

Turning now to FIG. 9, if the user is not a first-time visitor to themerchant website and has previously registered with the merchantwebsite, the user can logon to the merchant website in order to make apurchase. FIG. 9 is a flow chart depicting a set of functions 940 thatcan be carried out in accordance with an example embodiment. The set offunctions 940 can be performed in order for the user to logon to themerchant website. As shown in FIG. 9, the set of functions 940 pertainto logging onto a merchant website and the user accessing, or beingdirected to, the login page of the merchant website by a web browser onthe Internet-enabled device 116. The set of functions 940 are shownwithin blocks 900 through 906 and 914 through 922. A description ofthose blocks now follows.

At block 900, the merchant server 104 provides a login page of merchantwebsite. The login page can be provided to the internet-enabled device116 via the communication network 108. The internet-enabled device 116can display the login page including, for example, a login formdisplaying the user attributes (i.e. data fields) the merchant uses tologin the user. Some of these data fields, such as the user's username,and password, can be mandatory. Other data fields can be optional. Theuser can, of course, fill in the data fields manually in order to loginto the merchant website.

At block 902, the merchant server 104 provides a login QR code thatencodes the unique identification code that was assigned to the merchantwebsite by the application server 102, a GUID that operates as a sessionidentifier, and call-back login URL for the merchant website. The loginQR code can be generated by the merchant server 104 or can be served tothe merchant server 104 by a separate source of QR codes (not shown).The login QR code and login form can be provided, individually or incombination, to the internet-enabled device 116, which subsequentlydisplays the login form and the login QR code. The login QR code andlogin form can be provided to the internet-enabled device 116 as part ofa login webpage the internet-enabled device 116 can display.

At block 904, the user can use the scanner app 164 and the scanner 156to scan the login QR code on the login page of the merchant website. Atblock 906, the scanner app 164 decodes the scanned login QR code torecover the encoded data that it contains, namely, the merchant websiteidentification code, the session GUID, and the call-back login URL ofthe merchant website.

At block 914, the scanner app 164 performs a lookup in the user profile110 to check whether the profile contains login credentials associatedwith the login webpage of the merchant website that the user is seekingto logon to. If such login credentials are found in the user profile110, the credentials, together with the session GUID, are transmitted(at block 916) to the call-back login URL of the merchant website forauthentication. If the merchant server 104 successfully authenticatesthe transferred login credentials at block 918, the login webpage of themerchant website updates to indicate to the user that login to themerchant website has completed successfully (block 920). As an example,after authenticating the login credentials received from the codescanner 106, the merchant server 104 can provide data to theinternet-enabled device 116 to update the login webpage to indicate userlogin was successful. The login webpage can be configured to request(for example, periodically) status of authenticating the user's logincredentials. Updating the login webpage can include providing the userwith access to a shopping webpage via the merchant website.

Returning to block 914, if, on the other hand, the user profile 110 doesnot contain login credentials associated with the login page of themerchant website, the scanner app 164 initiates, at block 922, a websiteregistration process as if the user had scanned a registration QR codeon the registration page of the merchant website, as described above.

As represented in FIG. 10, in order to complete a purchase transactionof goods or services in a virtual shopping cart, the user navigates tothe checkout webpage of the merchant website by means of a web browseron an internet-enabled device 116. FIG. 10 is a flow chart depicting aset of functions 1050 that can be carried out in accordance with anexample embodiment. The set of functions 1050 can be performed tocomplete a purchase transaction of goods or services, contained in avirtual shopping cart, that the user wishes to acquire from the merchantor merchant website. The user can navigate to a checkout webpage of themerchant website by means of a web browser on the internet-enableddevice 116. The set of functions 1050 are shown within blocks 1000through 1006 and 1014 through 1040. A description of those blocks nowfollows.

At block 1000, the merchant server 104 provides a virtual shopping cartand an amount due. As an example, the shopping cart and the amount duecan be provided to the internet-enabled device 116 via the checkoutwebpage that displays the contents of the shopping cart as well as thetotal amount due and payable for the purchase. The merchant server 104can provide purchase data fields for manually completing the purchase ofitems in the shopping cart using the internet-enabled device 116.

At block 1002, the merchant server 104 provides a checkout QR code. Aunique identification code that was assigned to the merchant website bythe application server 102, a GUID that operates as a sessionidentifier, and a call-back checkout URL of the merchant server 104 areencoded within the checkout QR code. The checkout QR code can begenerated by the merchant server 104 or can be served to the merchantserver 104 by a separate source of QR codes (not shown). The checkout QRcode can be provided to the internet-enabled device 116, whichsubsequently displays the checkout QR code for scanning by the codescanner 106. The checkout QR code can be provided to theinternet-enabled device 116 as part of a checkout webpage displayableusing the internet-enabled device 116.

At block 1004, the user can use the scanner 156 or the scanner app 164to scan the checkout QR code on the checkout webpage of the merchantwebsite. At block 1006, the scanner app 164 decodes the scanned checkoutQR code to recover the encoded data that it contains, namely, themerchant website identification code, the session GUID, and thecall-back checkout URL.

At block 1014, the scanner app 164 requests particulars of the requiredpurchase-data fields from the call-back checkout URL of the merchantwebsite. The code scanner 106 can transmit the session GUID to themerchant server 104 with or separately from the request for particularsof the required purchase-data fields. At block 1016, the merchant server104 transmits a list of the required website purchase-data fields to thescanner app 164, which typically include a shipping address, a shippingmethod and details of a payment instrument to be used (for example, acredit or debit card number, a card expiry date, a cardholder's name, aCVC, or a PIN. The shipping method data field is accompanied by a choiceof shipping methods offered by the merchant.

At block 1018, the scanner app 164 displays the website purchase-datafields on the user interface 154. At block 1020, the scanner app 164pre-populates as far as possible, the displayed data fields with datastored in the user profile 110. In particular, the default shippingaddress that the scanner app 164 uses to pre-populate the shippingaddress data field can be the user's physical address that is stored inthe user profile 110. The user can then review the pre-populated datafields and amend the displayed data if necessary and complete any datafields which are unpopulated. For example, if the user profile 110contains more than one physical address, the user can select a differentshipping address from a drop-down list the scanner app 164 displays onthe user interface 154, and can select a shipping method from a furtherdrop-down list.

At block 1022, after reviewing and amending the displayed shippinginformation, if necessary, or any other populated purchase-data fields,the user can accept the displayed purchase-data. At block 1024, thescanner app 164 transmits the purchase-data, including the shippinginformation, entered into the purchase-data fields to the call-backcheckout URL of the merchant website on the merchant server 104. Thecode scanner 106 can transmit the session GUID to the merchant server104 with or separately from the purchase-data. At block 1025, themerchant server 104 can determine whether the shipping details havechanged. If the merchant server 104 detects that the shipping address orthe shipping method has changed, the merchant server 104 can, ifappropriate, update the purchase amount displayed on the checkoutwebpage of the merchant website (block 1026) and the updated purchaseamount is transmitted back to the code scanner 106 (block 1028) fordisplay by the scanner app 164 (block 1030). If the merchant server 104detects that the shipping details have not changed, the process cancontinue at block 1032.

At block 1032, the user can review the purchase amount and accept theamount for payment. The scanner app 164 then transmits, at block 1036,the details of a payment instrument to be used for payment (for example,a credit or debit card number, a cardholder's name, a card expiry date,a CVC, or a PIN, as stored in the user profile 110) to the call-backcheckout URL of the merchant website. The code scanner 106 can transmitthe session GUID to the merchant server 104 with or separately from thepayment instrument data. If the user profile 110 in the code scanner 106contains details of more than one payment instrument, the user can beprompted to select a preferred payment instrument from a drop-down listdisplayed by the scanner app 164 (block 1034).

Once the details of the selected payment instrument have been receivedat the call-back checkout URL, the merchant server 104 sends theparticulars of the financial transaction (for example, the purchaseamount, merchant and payment details) to a payment processor (not shown)for processing (at block 1038). At block 1039, the merchant server 104(for example, the payment processor) can determine whether the paymentwas successful. The payment processor transmits a payment statusindicator, for example either successful or unsuccessful. If the paymentstatus is successful, the checkout webpage of the merchant websiterefreshes to indicate that the user's purchase has completedsuccessfully (block 1040). If, on the other hand, the merchant server104 determines that the payment status is unsuccessful, the checkoutwebpage refreshes to request the user to select a different paymentinstrument and re-attempt payment (block 1034). Re-attempting paymentcan occur using the scanner app 164 or the internet-enabled device 116.

If the merchant website requires the user to login before completing thepurchase transaction, the user can be re-directed to the website loginpage. The user can login to the merchant website by scanning the loginQR code displayed on the login page as described above. If the userprofile 110 does not contain login credentials associated with the loginpage of the merchant website, the scanner app 164 can initiate a websiteregistration process as if the user had scanned a registration QR codeon the registration page of the merchant website, as described above.

Clearly, numerous variations and permutations are possible to theembodiments without departing from the scope of this disclosure: Some ofthese variations and permutations are described below.

1. In accordance with one or more of the disclosed embodiments, thescanner app 164 can enable the user to store more than one username incase the default username is already in use on a particular website.Additional usernames can be added when the user profile 110 is set up oras required during registration at a merchant website if the defaultusername is found to be unavailable. The user can then select whichusername to use from a drop-down list of alternative usernames that aredisplayed by the scanner app 164.

2. In accordance with one or more of the disclosed embodiments, thescanner app 164 can enable the user to store multiple security questionswith corresponding answers in the user profile 110 on the code scanner106. In such an embodiment, the user can choose and answer to use forwebsite registration purposes from a drop-down list of alternativequestions displayed by the scanner app 164.

3. In accordance with one or more of the disclosed embodiments, insteadof the user profile 110 being stored only on the code scanner 106, theprofile can be replicated and stored on the application server 102 aswell. In this embodiment, the scanner app 164 on the code scannersynchronises changes to the user profile 110 with the copy of theprofile on the application server 102 as the changes occur, orperiodically, or explicitly under user command. The copy of the userprofile on the application server 102 can then be imported to adifferent code scanner, for example when the user changes smartphones orin the event the user loses or damages her code scanner 106.

4. In accordance with one or more of the disclosed embodiments, in orderto improve security of the system 100, transmission of data from theuser profile 110 to the merchant server 104 by the scanner app 164 canbe encrypted. In order to implement this feature, the QR code displayedon the relevant page of the merchant website encodes, in addition to theunique identification code and a session-identifying GUID, an encryptionkey that is valid for the duration of the user session on the merchantwebsite. The scanner app 164 decodes the scanned QR code to recover theencryption key and uses the key to encrypt data to be transmitted by thescanner app 164 to the merchant website where the received data isdecrypted using the same encryption key.

5. In accordance with one or more of the disclosed embodiments, themerchant portal website 120 can enable a merchant to configure themerchant profile in the merchant database 112 to include additionalinformation. In particular, FIG. 11 illustrates an alternativeembodiment of the merchant portal website page of FIG. 3 in which amerchant can configure the following additional information for eachmerchant website in the merchant profile: (i) for QR-based registration,a list 228 of registration data fields required by the merchant websiteand a corresponding flag indicating whether each field is mandatory oroptional, (ii) for QR-based login, a list 230 of login data fieldsrequired by the merchant website, and (iii) for QR-based purchasing, alist 232 of purchase-data fields required by the merchant website.

This can enable the scanner app 164 to request the lists ofregistration, login and purchase-data fields directly from theapplication server 102 instead of requesting the lists from therespective call-back registration, login and checkout URLs of themerchant website. The fields in lists 228, 230, and 232 are provided asexamples and may not be required fields.

6. In accordance with one or more of the disclosed embodiments, insteadof the code scanner 106 or the scanner app 164 transmitting details of aselected payment instrument to the merchant server 104 for paymentprocessing, the code scanner 106 or the scanner app 164 can send thefinancial transaction particulars to the application server 102 forprocessing. The application server 102 can then process the payment andreturn a payment status indicator, either successful or unsuccessful, tothe checkout webpage of the merchant website.

7. In accordance with one or more of the disclosed embodiments, each QRcode displayed on the internet-enabled device 116 is unique. Thevariation between each unique QR code can be a unique session GUIDencoded within the QR code. Refreshing a webpage displayed by theinternet-enabled device 116, regardless of whether the refreshing istriggered by the merchant server 104 or the internet-enabled device 116,can include refreshing the displayed webpage with another unique QRcode.

8. In accordance with one or more of the disclosed embodiments, datasent from the code scanner 106 or the scanner app 164 may beinsufficient for registering a user or code scanner, logging in a useror code scanner, or completing a purchase of an item within a virtualshopping cart. Such data may be insufficient because, for example, apayment instrument card number is not correct, an expiration date on thepayment instrument card is not correct, all of the data required toregister or login a user or code scanner was not provided to themerchant server, or all of the data required to complete purchasing theitem was not provided to the merchant server. When insufficient data isreceived by the merchant server 104, the merchant server 104 cantransmit, to the internet-enabled device 116, a displayable notice thatindicates registration, login, or completing the purchase wasunsuccessful. Such notice may not indicate why the registration, login,or completing the purchase was unsuccessful. Additionally oralternatively, when insufficient data is received by the merchant server104, the merchant server 104 can transmit, to the code scanner 106, adisplayable notice that indicates registration, login, or completing thepurchase was unsuccessful and why the registration, login, or completingthe purchase was unsuccessful.

9. In accordance with one or more of the disclosed embodiments the usermay, after reviewing the contents of the virtual shopping cart and theamount due as displayed on the checkout page of the merchant website,scan the checkout QR code (that encodes the merchant websiteidentification code and the session GUID). The scanner app 164 decodesthe scanned checkout QR code and obtains the call-back checkout URL 226from the application server 102 as previously described. The scanner app164 then displays a payment form with fields pertaining to a paymentinstrument to be used for payment (for example, a credit or debit cardnumber, a cardholder's name, a card expiry date, a CVC, or a PIN, asstored in the user profile 110). The fields in the payment form arepre-populated with corresponding data stored in user profile 110. If theuser profile contains details of more than one payment instrument, theuser can be required to select a preferred payment instrument from adrop-down list displayed by the scanner app 164. The user can accept thedisplayed payment instrument details, whereupon, the scanner app 164transmits the payment instrument details to the call-back checkout URL226 for processing.

10. In accordance with one or more of the disclosed embodiments, theuser interface 154 of the code scanner 106 can display a merchantwebpage with one of the described QR codes described herein. Using thescanner app 164 or another selector on the code scanner 106, the QR codedisplayed on the code scanner 106 can be transmitted (for example,downloaded) to the code scanner 106. The code scanner 106 can store theQR code transmitted to the code scanner 106 in the data storage device158. The scanner app 164 can decode the stored QR code to recover dataencoded in the QR code. Details and examples of decoding a QR code aredescribed in other parts of this description. Upon recovering theencoded data, the code scanner 106 or scanner app 164 can process theencoded data. Details and examples of processing data recovered from aQR code are described in other parts of this description.

The use of Quick Response technology (QR codes), as described in theexample embodiments, can enable user interactions in connection withwebsite registrations, logins and purchases to be conducted moreefficiently than is possible by means of known prior art methods. Once auser has established a user profile 110, the user need only scan, bymeans of the code scanner 106, a QR code displayed on a merchant websitein order to effect registration at, or subsequent login to, the website.The user is spared the tedium of manually completing websiteregistration forms or having to enter login credentials. It isanticipated that the use of QR codes for website registration and loginin this manner will reduce the proportion of users who can commencewebsite registration and drop-off without completing the registrationprocess.

When a user registers at a merchant website, login credentials for thatparticular website are stored in the user profile 110, for use insubsequent logins to the website, thereby avoiding the necessity for theuser to memorize the login credentials. Furthermore, the user can usedifferent login credentials for each website at which the userregisters, without requiring the user to memorize or record suchdifferent credentials, resulting in improved security.

Data in the user profile 110 is stored locally in the code scanner 106.This means that sensitive user data such as particulars of paymentinstruments like credit or debit cards need not be stored oradministered elsewhere such as, for example, the merchant server 104,thereby reducing the possibility of such particulars beingmisappropriated.

IV. Example Scanner Application Displays

Next, FIG. 12 illustrates example scanner app displays 950 and 952 thatthe scanner app 164 can provide (for example, display) in accordancewith one or more of the example embodiments. Scanner app display 950 canbe displayed after or in response to the code scanner 106 scanning aregistration QR code, such as a registration QR code that is part of aregistration webpage displayed on the internet-enabled device 116. Theregistration webpage can be provided by an example merchant referred toas ABC Inc. Displaying the scanner app display 950, or at least aportion of scanner app display 950, can occur as the scanner app 164decodes the registration QR code. Additionally or alternatively,displaying the scanner app display 950 can occur after the scanner app164 decodes the registration QR code.

The scanner app display 950 can include an existing login credentialselector 958 for selecting a login credentials previously entered forthe registration website and the code scanner 106 or a user of the codescanner 106. If no login credentials have been previously entered forthe registration website and the code scanner 106 or the user of thecode scanner 106, the existing login credential selector 958 mayindicate that no login credential have been entered for the registrationwebsite. Alternatively, in such a case, the existing login credentialselector 958 could be omitted from the registration scanner app display950. If, on the other hand, login credentials have been previouslyentered for the registration website and the code scanner 106 or a userof the code scanner 106, the existing login credential selector 958 canbe used to select the previously-entered login credentials. If multiplelogin credentials have been entered for the registration website, forexample, login credentials for two different users of the code scanner106, the existing login credential selector 958 can be used to initiateselecting or to select from among the multiple login credentials. Uponor after selecting login credentials using the existing login credentialselector 958, the server app 164 can transition to displaying scannerapp display 952 for logging on to the merchant server 104.

The scanner app display 950, for example, at the existing logincredential selector 958 can be pre-populated with data regarding amerchant that provides the registrations website (for example, ABC,Inc.). The merchant data can include an icon or image associated withthe merchant.

The scanner app display 950 can include a user-profile entry area 960that displays registration fields. The user-profile entry area 960 canbe included if no login credentials have been previously entered for theregistration website and the code scanner 106 or a use of the codescanner 106. One or more of the registration fields, such as “FirstName,” can be a mandatory field required for registration. One or moreof the registration fields, such as “Title” or “Phone Number” can beoptional fields that are not required for registration. Suchregistration field(s) can be labelled as “Optional.” One or more of theregistration fields can be pre-populated with data stored in codescanner 106, such as data stored in the user profile 110. The scannerapp 164 can allow a user to revise the data entered into a registrationfield. The user-profile entry area 960 can also be included to addadditional login credentials, such as login credentials for another userof the code scanner 106.

The scanner app display 950 includes a registration selector 962 that isselectable to cause the registration data entered into the user-profileentry area 960 to be transmitted to a call-back registration URL of themerchant server 104. In one respect, the registration selector 962 canbe visible, but unselectable, if no data or improper data has beenentered into a or each mandatory registration field. In another respect,the registration selector 962 can be visible and selectable even if nodata or improper data has been entered into a or each mandatoryregistration field. The scanner app 164 can be configured to detectimproper data within a field, such as an improper e-mail address.

The scanner app display 952 includes a login data entry area 964 inwhich a user can enter login credentials, such as a “Username” and“Password.” The scanner app 164 can pre-populate login credentials,stored in the user profile 110, into the login data entry area 964. Thelogin credentials pre-populated into the login data entry area 964 canbe selected based on the identification code encoded within theregistration QR code. If the code scanner 106 includes login credentialsfor multiple users, a portion of the login credential, such as the userpassword, may not be populated into the login data entry area 964 whenprepopulating login credentials into the login data entry area 964occurs. In such a case, the user may need to enter the user passwordprior to logging on to the merchant server.

The scanner app display 952 includes a login selector 966. Selectinglogin selector 966 (for example, by pressing login selector 966) cancause the scanner app 164 to transmit (block 616 in FIG. 6) the logincredentials to the call-back login URL of the merchant server 104.

The scanner app display 952 includes a menu 968 showing other featuresof scanner app 164 that can be initiated. In accordance with anotherembodiment, if the code scanner 106 has already stored login credentialsto log on to the merchant website, the scanner app display 952 can bedisplayed automatically upon scanning and decoding the registration QRcode.

Next, FIG. 13 illustrates example scanner app displays 954 and 956 thatthe scanner app 164 can provide (for example, display) in accordancewith one or more of the example embodiments. Scanner app display 954 canbe displayed after or in response to the code scanner 106 scanning aregistration QR code, such as a registration QR code that is part of aregistration webpage displayed on the Internet-enabled device 116. Theregistration webpage can be provided by an example merchant referred toas ABC Inc. Displaying the scanner app display 954, or at least aportion of scanner app display 954, can occur as the scanner app 164decodes the registration QR code. Additionally or alternatively,displaying the scanner app display 954 can occur after the scanner app164 decodes the registration QR code. In accordance with thisembodiment, the Title and phone Number Registration fields inuser-profile entry area 960 are not labelled as “Optional.”

The scanner app display 954 includes an address selector 970 that isselectable to cause the scanner app 164 to display the scanner appdisplay 956. The scanner app display 956 includes an address list 972from which an address is selectable to include with the registrationdata the code scanner 106 transmits to the merchant server. New addressselector 974 is selectable to add a new address to the address list 972.

Next, FIG. 17 illustrates example scanner app displays 976 and 978 thatthe scanner app 164 can provide (for example, display) in accordancewith an example embodiment. Scanner app display 976 can be displayedafter or in response to code scanner 106 scanning a checkout QR code,such as a checkout QR code that is part of a checkout webpage displayedon the internet-enabled device 116. Scanner app display 976 can includea preferred payment instrument selector 980 that can be selected totransmit payment instrument data (for example, block 736 in FIG. 7 andblock 1036 in FIG. 10). Scanner app display 976 can include a preferredshipment address selector 982 that can be selected to transmit shipmentdata to merchant server 104.

Scanner app display 976 can include a payment instrument and shippingaddress selector 984 that can be selected to use the payment instrumentand shipment address displayed on scanner app display 976. Selectingpayment instrument and shipping address selector 984 can cause codescanner 106 to transmit data pertaining to the preferred paymentinstrument and the preferred shipping address to the merchant server soas to complete a purchase of item(s) in the virtual shopping cart.

Scanner app 976 includes a new payment selector 986 that can be selectedto cause scanner app 164 to display scanner app display 978. Scanner app976 can include a new shipping address selector 988 that can be selectedto cause scanner app 164 to display a scanner app display, such asscanner app display 956, to allow for selection or entry of a newshipping address. Scanner app 976 can also include an amount dueidentifier 990 to provide notice of a payment amount that will be madein response to selecting payment instrument and shipping addressselector 984.

The scanner app display 978 includes a payment instrument selector 992from which another payment instrument can be selected from one or moreother displayed payment instruments. Scanner app display 978 can bedisplayed after selecting payment instrument and shipping addressselector 984. Scanner app display 978 shows three other paymentinstruments (an Express Card, a UK Global Card, and a Discovery Card),but a different number of payment instruments can be displayed. Thescanner app display 978 can include payment instrument selector 994 toadd a new payment instrument to payment instrument selector 992 or toedit data regarding the preferred payment instrument or data regarding apayment instrument identified on payment instrument selector 992.

In accordance with alternative embodiments, a scanner app display forcheckout can include the preferred payment instrument selector 980 butnot the preferred shipment address selector 982, and another scanner appdisplay for checkout can include the preferred shipment address selector982 but not the preferred payment instrument selector 980.

V. Additional Example Embodiments

The following clauses are offered as further description of thedisclosed inventions.

Clause 1—A method comprising:

-   -   decoding, at a code scanner, a registration quick response (QR)        code scanned by the code scanner from a webpage of a merchant        server;

transmitting, from the code scanner to a call-back registration uniformresource locator (URL) of the merchant server, registration data toregister a user with merchant server;

receiving, at the code scanner after registration of the user, logincredentials for logging the registered user onto the merchant server;and

storing the login credentials at the code scanner.

Clause 2—The method of clause 1, further comprising:

scanning, using the code scanner, the registration QR code from adisplay displaying the webpage of the merchant server,

wherein the display is part of an internet-enabled device connected toan internet.

Clause 3—The method of any of clauses 1 and 2, further comprising:

displaying, at the code scanner, registration fields to display theregistration data prior to transmitting the registration data to thecall-back registration URL; and

entering the registration data into the displayed registration fields,

wherein at least a portion of the registration data entered into thedisplayed registration fields includes pre-population data stored at thecode scanner prior to displaying the registration fields.

Clause 4—The method of any of clauses 1 and 2, further comprising:

displaying, at the code scanner, registration fields to display theregistration data prior to transmitting the registration data to thecall-back registration URL; and

entering the registration data into the displayed registration fields,

wherein at least a portion of the registration data entered onto thedisplayed registration fields includes data entered using an inputdevice of the code scanner.

Clause 5—The method of clause 4, wherein the data entered using theinput device of the code scanner comprises an answer to a securityquestion.

Clause 6—The method of clause 5, wherein the data entered using theinput device of the code scanner further comprises the securityquestion.

Clause 7—The method of any of claims 1 through 6, further comprising:

transmitting, from the code scanner to an application server, a merchantwebsite identification code decoded from the registration QR code; and

receiving, at the code scanner from the application server, thecall-back registration URL of the merchant server.

Clause 8—The method of clause 7, further comprising:

receiving, at the code scanner from the application server, registrationdata fields for registering a user with the merchant server; and

displaying, at the code scanner, the registration data fields,

wherein transmitting the registration data to the call-back registrationURL comprises transmitting data populated into the registration datafields displayed at the code scanner.

Clause 9—The method of any one of clauses 1 and 3 through 8, furthercomprising:

scanning, using the code scanner, the registration QR code from adisplay of an internet-enabled device connected to an internet,

wherein decoding the registration QR code comprises obtaining a merchantwebsite identification code and a globally unique identifier (GUID)encoded within the registration QR code.

Clause 10—The method of clause 9, further comprising:

wherein at least one of the merchant website information code and theGUID is encrypted,

wherein the registration QR code comprises an encryption key, and

wherein decoding the registration QR code further comprises the codescanner using the encryption key to decrypt at least one of the merchantwebsite information code and the GUID.

Clause 11—The method of clause 9, further comprising:

transmitting, from the code scanner to an application server, themerchant website identification code; and

receiving, at the code scanner from the application server, thecall-back registration URL of the merchant server.

Clause 12—The method of clause 11, wherein the call-back registrationURL can be used for registering a user, logging the user onto themerchant server, and completing a purchase by the user from the merchantserver.

Clause 13—The method of clause 11, wherein the call-back registrationURL can be used for registering a user, but cannot be used for loggingthe user onto the merchant server nor completing a purchase by the userfrom the merchant server.

Clause 14—The method of any of clauses 1 through 13, further comprising:

wherein the code scanner receives the login credentials from themerchant server, and

wherein storing the login credentials comprises storing the logincredentials received at the code scanner from the merchant server.

Clause 15—The method of clause 14, wherein the login credentialscomprise a user name and a user password.

Clause 16—The method of any of clauses 1 through 15, wherein the codescanner comprises a mobile wireless communication device configured forwireless communication with the merchant server and an applicationserver.

Clause 17—A code scanner device comprising:

a processor; and

a computer-readable data storage device comprising program instructionsexecutable by the processor to carry out a method of any one of clauses1 through 16.

Clause 18—A computer-readable data storage device comprisingcomputer-readable program instructions executable by a processor tocarry out a method of any one of clauses 1 through 16.

Clause 19—The computer-readable data storage device of clause 18,wherein the computer-readable data storage device is a non-transitorycomputer-readable data storage device.

Clause 20—A computer data signal embodied in a carrier wave, thecomputer data signal comprising computer-readable program instructionsfor performing a method of any one of clauses 1 through 16.

Clause 21—A reproducible computer-readable signal carryingcomputer-readable program instructions for performing a method of anyone of clauses 1 through 16.

Clause 22—A computer software product for registering a user of a dataprocessing system with a merchant server, the software productcomprising instructions, that when executed by a processor of the dataprocessing system will cause the data processing system to carry out thefunctions of any one clauses 1 through 16.

Clause 23—A code scanner device comprising:

a scanner that scans a registration quick response (QR) code from awebpage of a merchant server;

a processor;

a non-transitory computer-readable data storage device comprisingcomputer-readable program instructions, wherein the program instructionsare executable by the processor to decode the registration QR code; and

a network interface to transmit, to a call-back registration uniformresource locator (URL) of the merchant server, registration data forregistering a user with the merchant server, and to receive logincredentials useable for logging the registered user onto the merchantserver,

wherein the data storage device stores the received login credentials.

Clause 24—The code scanner device of clause 23,

wherein the processor determines an identification code for merchantwebsite by decoding the registration QR code, and

wherein the network interface transmits the identification code to anapplication server and responsively receives the call-back registrationURL from the application server.

Clause 25—The code scanner device of clause 23, wherein the processordetermines the call-back registration URL by decoding the registrationQR code that encodes the call-back registration URL.

Clause 26—A method comprising:

decoding, at a code scanner, a login quick response (QR) code scanned bythe code scanner from a webpage of a merchant server;

determining, using the code scanner, whether the code scanner includeslogin credentials for logging onto the merchant server;

if the code scanner determines that the code scanner includes the logincredentials for logging onto the merchant server, then transmitting,from the code scanner to a call-back login uniform resource locator(URL) of the merchant server, the login credentials for logging ontomerchant server; and

if the code scanner determines that the code scanner does not includethe login credentials for logging onto the merchant server, theninitiating, using the code scanner, a process to register a user withthe merchant server.

Clause 27—The method of clause 26, further comprising:

scanning, using the code scanner, the login QR code from a displaydisplaying the webpage of the merchant server,

wherein the display is part of an internet-enabled device connected toan interne.

Clause 28—The method of clause 26 or clause 27, further comprising:

transmitting, from the code scanner to an application server, a merchantwebsite identification code decoded from the login QR code; and

receiving, at the code scanner from the application server, thecall-back URL of the merchant server.

Clause 29—The method of clause 26, further comprising:

scanning, using the code scanner, the login QR code from a display of aninternet-enabled device connected to an internet,

wherein decoding the login QR code comprises obtaining a merchantwebsite identification code and a globally unique identifier (GUID)encoded within the login QR code.

Clause 30—The method of clause 29, further comprising:

wherein at least one of the merchant website information code and theGUID is encrypted,

wherein the login QR code comprises an encryption key, and

wherein decoding the login QR code further comprises the code scannerusing the encryption key to decrypt at least one of the merchant websiteinformation code and the GUID.

Clause 31—The method of clause 29, further comprising:

transmitting, from the code scanner to an application server, themerchant website identification code; and

receiving, at the code scanner from the application server, thecall-back login URL of the merchant server.

Clause 32—The method of clause 31, wherein the call-back login URL canbe used for registering a user, logging the user onto the merchantserver, and completing a purchase by the user from the merchant server.

Clause 33—The method of clause 31, wherein the call-back login URL canbe used for logging the user onto the merchant server, but cannot beused for registering a user nor completing a purchase by the user fromthe merchant server.

Clause 34—The method of any one of clauses 26 through 33, wherein thecode scanner comprises a mobile wireless communication device configuredfor wireless communication with the merchant server and an applicationserver.

Clause 35—A code scanner device comprising:

a processor; and

a computer-readable data storage device comprising program instructionsexecutable by the processor to carry out a method of any one of clauses26 through 34.

Clause 36—A computer-readable data storage device comprisingcomputer-readable program instructions executable by a processor tocarry out a method of any one of clauses 26 through 34.

Clause 37—The computer-readable data storage device of clause 36,wherein the computer-readable data storage device is a non-transitorycomputer-readable data storage device.

Clause 38—A computer data signal embodied in a carrier wave, thecomputer data signal comprising computer-readable program instructionsfor performing a method of any one of clauses 26 through 34.

Clause 39—A reproducible computer-readable signal carryingcomputer-readable program instructions for performing a method of anyone of clauses 26 through 34.

Clause 40—A computer software product for registering a user of a dataprocessing system with a merchant server, the software productcomprising instructions, that when executed by a processor of the dataprocessing system will cause the data processing system to carry out thefunctions of any one clauses 26 through 34.

Clause 41—A code scanner device comprising:

a scanner that scans a login quick response (QR) code from a webpage ofa merchant server;

a network interface;

a processor; and

a non-transitory computer-readable data storage device comprisingcomputer-readable program instructions, wherein the program instructionsare executable by the processor to decode the login QR code and todetermine whether the code scanner device comprises login credentialsfor logging onto the merchant server; and

wherein if the processor determines that the login credentials forlogging onto the merchant server are stored within the data storagedevice, then the network interface transmits, to a call-back loginuniform resource locator (URL) of the merchant server, the logincredentials for logging onto merchant server, and

wherein if the processor determines that the login credentials forlogging onto the merchant server are not stored within the data storagedevice, then the processor initiates a process to register a user withthe merchant server.

Clause 42—The code scanner device of clause 41,

wherein the login credentials are stored within the data storage deviceprior to the scanner scanning the login QR code.

Clause 43—The code scanner device of clause 41,

wherein the login credentials are temporarily stored within the datastorage device after the processor decodes the login QR code and thenetwork interface has received the login credentials from an applicationserver system that stores the login credentials.

Clause 44—The code scanner device of any one of clauses 41 through 43,

wherein the processor determines an identification code for merchantserver by decoding the login QR code, and

wherein the network interface transmits the identification code to anapplication server and responsively receives the call-back login URLfrom the application server.

Clause 45—The code scanner device of any one of clauses 41 through 43,wherein the processor determines the call-back login URL by decoding thelogin QR code that encodes the call-back login URL.

Clause 46—A method comprising:

decoding, at a code scanner, a checkout quick response (QR) code scannedby the code scanner from a webpage of a merchant server;

transmitting, from the code scanner to a call-back checkout uniformresource locator (URL) of the merchant server, purchase-data to purchasean item within a virtual shopping cart of the merchant server;

displaying, at the code scanner, a payment amount due that is to be paidto purchase the item within the virtual shopping cart;

transmitting, from the code scanner to the merchant server, paymentinstrument data for processing payment of the payment amount to completea purchase of the item within the virtual shopping cart.

Clause 47—The method of clause 46, further comprising:

scanning, using the code scanner, the checkout QR code from a displaydisplaying the webpage of the merchant server,

wherein the display is part of an internet-enabled device connected toan internet.

Clause 48—The method of clause 46 or clause 47, further comprising:

displaying, at the code scanner, purchase-data fields to display thepurchase-data prior to transmitting the purchase-data to the call-backcheckout URL; and

entering the purchase-data into the displayed purchase-data fields,

wherein at least a portion of the purchase-data entered into thedisplayed purchase-data fields includes pre-population data stored atthe code scanner prior to displaying the purchase-data fields.

Clause 49—The method of clause 46 or clause 47, further comprising:

displaying, at the code scanner, purchase-data fields to display thepurchase-data prior to transmitting the purchase-data to the call-backcheckout URL; and

entering the registration data into the displayed purchase-data fields,

wherein at least a portion of the purchase-data entered into thedisplayed purchase-data fields includes data entered using an inputdevice of the code scanner.

Clause 50—The method of any one of clauses 46 through 49, furthercomprising:

transmitting, from the code scanner to an application server, a merchantwebsite identification code decoded from the checkout QR code; and

receiving, at the code scanner from the application server, thecall-back checkout URL of the merchant server.

Clause 51—The method of clause 50, further comprising:

receiving, at the code scanner from the application server,purchase-data fields for use in purchasing the item within the virtualshopping cart; and

displaying, at the code scanner, the purchase-data fields,

wherein transmitting the purchase-data to the call-back checkout URLcomprises transmitting data populated into the purchase-data fieldsdisplayed at the code scanner.

Clause 52—The method of any one of clauses 46 through 51, furthercomprising:

scanning, using the code scanner, the checkout QR code from a display ofan internet-enabled device connected to an interne,

wherein decoding the checkout QR code comprises obtaining a merchantwebsite identification code, a globally unique identifier (GUID), and apayment amount encoded within the checkout QR code.

Clause 53—The method of clause 52,

wherein at least one of the merchant website information code, the GUID,and the payment amount is encrypted,

wherein the checkout QR code comprises an encryption key, and

wherein decoding the checkout QR code further comprises the code scannerusing the encryption key to decrypt at least one of the merchant websiteinformation code, the GUID, and the payment amount.

Clause 54—The method of clause 53, further comprising:

transmitting, from the code scanner to an application server, themerchant website identification code; and

receiving, at the code scanner from the application server, thecall-back checkout URL of the merchant server.

Clause 55—The method of clause 53, wherein the call-back checkout URLcan be used for registering a user, logging the user onto the merchantserver, and completing a purchase by the user from the merchant server.

Clause 56—The method of clause 53, wherein the call-back checkout URLcan be used for completing a purchase by the user from the merchantserver, but cannot be used for registering a user nor logging the useronto the merchant server.

Clause 57—The method of any one of clauses 46 through 56, wherein thecode scanner comprises a mobile wireless communication device configuredfor wireless communication with the merchant server and an applicationserver.

Clause 58—A code scanner device comprising:

a processor; and

a computer-readable data storage device comprising program instructionsexecutable by the processor to carry out a method of any one of clauses46 through 57.

Clause 59—A computer-readable data storage device comprisingcomputer-readable program instructions executable by a processor tocarry out a method of any one of clauses 46 through 57.

Clause 60—The computer-readable data storage device of clause 59,wherein the computer-readable data storage device is a non-transitorycomputer-readable data storage device.

Clause 61—A computer data signal embodied in a carrier wave, thecomputer data signal comprising computer-readable program instructionsfor performing a method of any one of clauses 46 through 57

Clause 62—A reproducible computer-readable signal carryingcomputer-readable program instructions for performing a method of anyone of clauses 46 through 57.

Clause 63—A computer software product for registering a user of a dataprocessing system with a merchant server, the software productcomprising instructions, that when executed by a processor of the dataprocessing system will cause the data processing system to carry out thefunctions of any one clauses 46 through 57.

Clause 64—A code scanner device comprising:

a scanner that scans a checkout quick response (QR) code from a webpageof a merchant server;

a processor;

a non-transitory computer-readable data storage device comprisingcomputer-readable program instructions, wherein the program instructionsare executable by the processor to decode the checkout QR code;

a network interface that transmits, to a call-back checkout uniformresource locator (URL), purchase-data to purchase an item within avirtual shopping cart of the merchant server; and

a display device that displays a payment amount that is to be paid topurchase the item within the virtual shopping cart,

wherein the network interface transmits, to the merchant server, paymentinstrument data for processing payment of the payment amount to completea purchase of the item within the virtual shopping cart.

Clause 65—The code scanner device of clause 64,

wherein the processor determines an identification code for merchantserver by decoding the checkout QR code, and

wherein the network interface transmits the identification code to anapplication server and responsively receives the call-back checkout URLfrom the application server.

Clause 66—The code scanner device of clause 64, wherein the processordetermines the call-back checkout URL by decoding the checkout QR codethat encodes the call-back checkout URL.

Clause 67—A method comprising:

storing, in a non-transitory computer-readable data storage device, afirst merchant website identification code and a first call-back uniformresource locator (URL), wherein the first merchant websiteidentification code and the first call-back URL are associated with eachother;

receiving, at the application server from a first code scanner, thefirst merchant website identification code;

selecting, from the data storage device, the first call-back URLassociated with the first merchant website identification code; and

transmitting, from the application server to the first code scanner inresponse to receiving the first merchant website identification code,the first call back URL.

Clause 68—The method of clause 67, further comprising:

storing, at the application server, registration fields provided by amerchant server;

receiving, at the application server from the first code scanner, thefirst merchant website identification code and a request for theregistration fields;

selecting, using the application server, the requested registrationfields in response to receiving the merchant website identification codeand the request for the registration fields; and

transmitting, from the application server to the first code scanner, theselected registration fields.

Clause 69—The method of clause 67, further comprising:

storing, at the application server, purchase-data fields provided by amerchant server;

receiving, at the application server from the first code scanner, thefirst merchant website identification code and a request for thepurchase-data fields;

selecting, using the application server, the requested purchase datafields in response to receiving the identification code and the requestfor the purchase data fields or the purchase-data fields in response toreceiving the request for the purchase data fields; and

transmitting, from the application server to the first code scanner, theselected purchase-data fields.

Clause 70—The method of any one of clauses 67 through 69, furthercomprising:

receiving, at the application server from the first code scanner, arequest for a scanner application configured to scan and decode at leastone of a registration quick response (QR) code, a login QR code, and acheckout QR code; and

transmitting, from the application server to the first code scanner, thescanner application in response to the request.

Clause 71—The method of any one of clauses 67 through 70, furthercomprising:

receiving, at the application server from the first code scanner, arequest,

wherein, if the request pertains to registering a user, the firstcall-back URL comprises a call-back registration URL configured toreceive a request for registration data fields, or registration data,

wherein, if the request pertains to a user logging onto a merchantwebsite, the first call-back URL comprises a call-back login URLconfigured to receive login credentials, and

wherein, if the request pertains to completing a purchase from amerchant website, the first call-back URL comprises a call-back checkoutURL configured to receive a request for purchase data fields, purchasedata, or payment instrument data.

Clause 72—The method of any one of clauses 67 through 70, furthercomprising:

receiving, at the application server from the first code scanner, arequest that pertains to registering a user,

wherein the first call-back URL comprises a call-back registration URLconfigured to receive a request for registration data fields, orregistration data.

Clause 73—The method of any one of clauses 67 through 70, furthercomprising:

receiving at the application server from the first code scanner arequest that pertains to logging onto a merchant website,

wherein the first call-back URL comprises a call-back login URLconfigured to receive login credentials.

Clause 74—The method of any one of clauses 67 through 70, furthercomprising:

receiving at the application server from the first code scanner arequest that pertains to completing a purchase from a merchant website,

wherein the first call-back URL comprises a call-back checkout URLconfigured to receive a request for purchase data fields, purchase data,or payment instrument data.

Clause 75—The method of any one of clauses 67 through 74, furthercomprising:

receiving, at the application server, a user profile that includes or isassociated with an identifier;

storing the user profile in the data storage device;

receiving, at the application server from the first code scanner, arequest for the user profile, wherein the request for the user profilecomprises the identifier;

selecting, from the data storage device, the user profile that includesor is associated with the identifier; and

transmitting, from the application server to the first code scanner, theselected user profile.

Clause 76—The method of clause 75,

wherein the identifier identifies a user of the first code scanner.

Clause 77—The method of clause 75,

wherein the identifier identifies the first code scanner.

Clause 78—The method of any one of clauses 67 through 77, furthercomprising:

storing, in the data storage device, a second merchant websiteidentification code and a second call-back URL, wherein the secondmerchant website identification code and the second call-back URL areassociated with each other;

receiving, at the application server from the first code scanner, thesecond merchant website identification code;

selecting, from the data storage device, the second call-back URLassociated with the second merchant website identification code; and

transmitting, from the application server to the first code scanner inresponse to receiving the second merchant website identification code,the second call back URL.

Clause 79—The method of any one of clauses 67 through 77, furthercomprising:

storing, in the data storage device, a first merchant portal webpageconfigured for entering data to register a merchant website with theapplication server;

transmitting, from the application server to a merchant computing deviceconfigured to display webpages, the first merchant portal webpage;

receiving, at the application server, data entered via the firstmerchant portal webpage; and

storing, as a merchant profile in the data storage device, the receiveddata entered via the first merchant portage webpage.

Clause 80—The method of clause 79, wherein the data entered via thefirst merchant portal webpage comprises data selected from the groupconsisting of (i) a merchant name, (ii) a merchant address, and (iii) adescription of a merchant business.

Clause 81—The method of clause 80, further comprising:

storing, in the data storage device, a second merchant portal webpageconfigured for entering data to register a merchant website with theapplication server;

transmitting, from the application server to a merchant computing deviceconfigured to display webpages, the second merchant portal webpage;

receiving, at the application server, data entered via the secondmerchant portal webpage; and

storing, as a merchant profile in the data storage device, the receiveddata entered via the second merchant portage webpage,

wherein the data entered via the second merchant portal webpagecomprises a selection of a previously-registered webpage associated withthe merchant or a selection of a new-site selector to indicateregistration of another merchant website with the application server isrequested.

Clause 82—The method of clause 80, wherein the data entered via thefirst merchant portal webpage comprises data selected from the groupconsisting of (i) a website name, (ii) an image or logo, (iii) acall-back registration URL, (iv) a call-back login URL, and (v) acall-back checkout URL.

Clause 83—The method of clause 80, further comprising:

storing, in the data storage device, a second merchant portal webpageconfigured for entering data to register a merchant website with theapplication server;

transmitting, from the application server to a merchant computing deviceconfigured to display webpages, the second merchant portal webpage;

receiving, at the application server, data entered via the secondmerchant portal webpage; and

storing, as a merchant profile in the data storage device, the receiveddata entered via the second merchant portage webpage,

wherein the data entered via the second merchant portal webpagecomprises a selection of a previously-registered webpage associated withthe merchant or a selection of a new-site selector to indicateregistration of another merchant website with the application server isrequested.

Clause 84—The method of clause 80, wherein the data entered via thefirst merchant portal webpage comprises a selection of apreviously-registered webpage associated with the merchant or aselection of a webpage entry selection.

Clause 85—A server device comprising:

a processor; and

a computer-readable data storage device comprising program instructionsexecutable by the processor to carry out a method of any one of clauses67 through 84.

Clause 86—A computer-readable data storage device comprisingcomputer-readable program instructions executable by a processor tocarry out a method of any one of clauses 67 through 84.

Clause 87—The computer-readable data storage device of clause 86,wherein the computer-readable data storage device is a non-transitorycomputer-readable data storage device.

Clause 88—A computer data signal embodied in a carrier wave, thecomputer data signal comprising computer-readable program instructionsfor performing a method of any one of clauses 67 through 84.

Clause 89—A reproducible computer-readable signal carryingcomputer-readable program instructions for performing a method of anyone of clauses 67 through 84.

Clause 90—A computer software product for registering a user of a dataprocessing system with a merchant server, the software productcomprising instructions, that when executed by a processor of the dataprocessing system will cause the data processing system to carry out thefunctions of any one clauses 67 through 84.

Clause 91—An application server system comprising:

a processor;

a non-transitory computer-readable data storage device comprising amerchant website identification code, a call-back uniform resourcelocator (URL), and computer-readable program instructions executable bythe processor, wherein the merchant website identification code and thecall-back URL are associated with each other; and

a network interface that receives, from a code scanner, the merchantwebsite identification code,

wherein the processor executes the program instructions to select thecall-back URL in response to the network interface receiving themerchant website identification code, and

wherein the processor executes the program instructions to cause thenetwork interface to transmit, to the code scanner, the call-back URLselected in response to the network interface receiving the merchantwebsite identification code.

Clause 92—The application server of clause 91,

wherein the data storage device comprises a scanner applicationconfigured to scan and decode at least one of a registration quickresponse (QR) code, a login QR code, and a checkout QR code; and

wherein the network interface transmits the scanner application to thecode scanner prior to the network interface receiving the identificationcode from the code scanner,

Clause 93—The application server of clause 91 or clause 92,

wherein the data storage device further comprises purchase-data fieldsprovided by a merchant server;

wherein the network interface receives, from the code scanner, themerchant website identification code and a request for the purchase-datafields;

wherein the processor selects the requested purchase data fields inresponse to receiving the identification code and the request for thepurchase data fields or the purchase-data fields in response toreceiving the request for the purchase data fields; and

wherein the network interface transmits the selected purchase-datafields to the code scanner.

94, The application server of clause 91 or clause 92,

wherein the data storage device further comprises purchase-data fieldsprovided by a merchant server;

wherein the network interface receives, from the code scanner, themerchant website identification code and a request for the purchase-datafields;

wherein the processor selects the requested purchase data fields inresponse to receiving the identification code and the request for thepurchase data fields or the purchase-data fields in response toreceiving the request for the purchase data fields; and

wherein the network interface transmits the selected purchase-datafields to the code scanner.

Clause 95—The application server of any one of clauses 91 through 94,

wherein the network interface receives a request from the code scanner,

wherein, if the request pertains to registering a user, the call-backURL comprises a call-back registration URL configured to receive arequest for registration data fields, or registration data,

wherein, if the request pertains to a user logging onto a merchantwebsite, the call-back URL comprises a call-back login URL configured toreceive login credentials, and

wherein, if the request pertains to completing a purchase from amerchant website, the call-back URL comprises a call-back checkout URLconfigured to receive a request for purchase data fields, purchase data,or payment instrument data.

Clause 96—The application server of any one of clauses 91 through 94,

wherein the network interface receives, from the code scanner, a requestthat pertains to registering a user,

wherein the call-back URL comprises a call-back registration URLconfigured to receive a request for registration data fields, orregistration data.

Clause 97—The application server of any one of clauses 91 through 94,

wherein the network interface receives, from the code scanner a requestthat pertains to logging onto a merchant website,

wherein the call-back URL comprises a call-back login URL configured toreceive login credentials.

Clause 98—The application server of any one of clauses 91 through 94,

wherein the network interface receives, from the code scanner a requestthat pertains to completing a purchase from a merchant website,

wherein the call-back URL comprises a call-back checkout URL configuredto receive a request for purchase data fields, purchase data, or paymentinstrument data.

Clause 99—The application server of any one of clauses 91 through 98,

wherein the network interface receives a user profile that includes oris associated with an identifier;

wherein the data storage device stores the received user profile;

wherein the network interface receives, from the code scanner, a requestfor the user profile, wherein the request for the user profile comprisesthe identifier;

wherein the processor selects, from the data storage device, the userprofile that includes or is associated with the identifier; and

wherein the network interface transmits the selected user profile to thefirst code scanner.

Clause 100—The application server of clause 99,

wherein the identifier identifies a user of the code scanner.

Clause 101—The application server of clause 99,

wherein the identifier identifies the code scanner.

Clause 102—The application server of any one of clauses 91 through 101,

-   -   where the data storage device comprises a second merchant        website identification code and a second call-back URL, wherein        the second merchant website identification code and the second        call-back URL are associated with each other;

wherein the network interface receives the second merchant websiteidentification code from the code scanner;

wherein the process selects, from the data storage device, the secondcall-back URL associated with the second merchant website identificationcode; and

wherein the network interface transmits the second call back URL to thecode scanner in response to receiving the second merchant websiteidentification code.

Clause 103—The application server of any one of clauses 91 through 101,

wherein the data storage device comprises a merchant portal webpageconfigured for entering data to register a merchant website with theapplication server;

wherein the network interface transmits the merchant portal webpage to amerchant computing device configured to display webpages;

wherein the network interface receives data entered via the merchantportal webpage; and

wherein the data storage device stores the received data entered via themerchant portage webpage as a merchant profile.

Clause 104—The application server of clause 103,

wherein the data entered via the merchant portal webpage comprises dataselected from the group consisting of (i) a merchant name, (ii) amerchant address, and (iii) a description of a merchant business.

Clause 105—The application server of clause 104,

wherein the data storage device comprises a second merchant portalwebpage configured for entering data to register a merchant website withthe application server;

wherein the network interface transmits, to a merchant computing deviceconfigured to display webpages, the second merchant portal webpage;

wherein the network interface receives data entered via the secondmerchant portal webpage; and

wherein the data storage device stores the received data entered via thesecond merchant portage webpage as a merchant profile, and

wherein the data entered via the second merchant portal webpagecomprises a selection of a previously-registered webpage associated withthe merchant or a selection of a new-site selector to indicateregistration of another merchant website with the application server isrequested.

Clause 106—The application server of clause 104,

wherein the data entered via the merchant portal webpage comprises dataselected from the group consisting of (i) a website name, (ii) an imageor logo, (iii) a call-back registration URL, (iv) a call-back login URL,and (v) a call-back checkout URL.

Clause 107—The application server of clause 103,

wherein the data storage device comprise a second merchant portalwebpage configured for entering data to register a merchant website withthe application server,

wherein the network interface transmits the second merchant portalwebpage to a merchant computing device configured to display webpages,

wherein the network interface receives data entered via the secondmerchant portal webpage, and

wherein the data storage device stores the received data entered via thesecond merchant portage webpage as a merchant profile, and

wherein the data entered via the second merchant portal webpagecomprises a selection of a previously-registered webpage associated withthe merchant or a selection of a new-site selector to indicateregistration of another merchant website with the application server isrequested.

Clause 108—The application server of clause 103,

wherein the data entered via the merchant portal webpage comprises aselection of a previously-registered webpage associated with themerchant or a selection of a webpage entry selection.

VI. Conclusion

Example embodiments have been described above. Those skilled in the artwill understand that changes and modifications can be made to thedescribed embodiments without departing from the true scope and spiritof the present invention, which is defined by the claims.

This detailed description describes various features and functions ofthe disclosed systems, devices, and methods with reference to theaccompanying figures. In the figures, similar symbols typically identifysimilar components, unless context dictates otherwise. The illustrativeembodiments described in the detailed description, figures, and claimsare not meant to be limiting. Other embodiments can be used, and otherchanges can be made, without departing from the spirit or scope of thesubject matter presented herein. It will be readily understood that theaspects of the present disclosure, as generally described herein, andillustrated in the figures, can be arranged, substituted, combined,separated, and designed in a wide variety of different configurations,all of which are explicitly contemplated herein.

With respect to any or all of the message flow diagrams, scenarios, andflow charts in the figures and as discussed herein, each step, blockand/or communication can represent a processing of information and/or atransmission of information in accordance with example embodiments.Alternative embodiments are included within the scope of these exampleembodiments. In these alternative embodiments, for example, functionsdescribed as steps, blocks, transmissions, communications, requests,responses, and/or messages can be executed out of order from that shownor discussed, including in substantially concurrent or in reverse order,depending on the functionality involved. Further, more or fewer steps,blocks and/or functions can be used with any of the message flowdiagrams, scenarios, and flow charts discussed herein, and these messageflow diagrams, scenarios, and flow charts can be combined with oneanother, in part or in whole.

A step or block that represents a processing of information cancorrespond to circuitry that can be configured to perform the specificlogical functions of a herein-described method or technique.Alternatively or additionally, a step or block that represents aprocessing of information can correspond to a module, a segment, or aportion of program code (including related data). The program code caninclude one or more instructions executable by a processor forimplementing specific logical functions or actions in the method ortechnique. The program code and/or related data can be stored on anytype of computer-readable medium such as a storage device including adisk or hard drive or other storage media.

The computer-readable medium can include non-transitorycomputer-readable media such as computer-readable media that stores datafor short periods of time like register memory, processor cache, and/orrandom access memory (RAM). The computer-readable media can includenon-transitory computer-readable media that stores program code and/ordata for longer periods of time, such as secondary or persistent longterm storage, like read only memory (ROM), optical or magnetic disks,and/or compact-disc read only memory (CD-ROM), for example. Thecomputer-readable media can be any other volatile or non-volatilestorage systems. A computer-readable medium can be considered acomputer-readable storage medium, for example, or a tangible storagedevice.

The program code and/or related data may also be transitory. Forexample, the program code and/or related data may be embodied as asignal provided via a network, or via any other suitable means, from aremote location.

Moreover, a step or block that represents one or more informationtransmissions can correspond to information transmissions betweensoftware and/or hardware modules in the same physical device. However,other information transmissions can be between software modules and/orhardware modules in different physical devices.

While various aspects and embodiments have been disclosed herein, otheraspects and embodiments will be apparent to those skilled in the art.The various aspects and embodiments disclosed herein are for purposes ofillustration and are not intended to be limiting.

1-67. (canceled)
 68. A method performed by a merchant server, the methodcomprising: sending, to a computing device, a session identifier thatidentifies a communication session between the merchant server and thecomputing device; receiving, from a code scanner, (i) the sessionidentifier that is recovered by the code scanner by scanning anon-textual representation of the session identifier displayed by thecomputing device, and (ii) registration data for registering a user;determining that the registration data is sufficient to register theuser; and sending, to the computing device during the communicationsession, (i) the registration data and (ii) a message indicating thatthe user has been registered.
 69. The method of claim 68, furthercomprising sending login credentials to the code scanner afterdetermining that the registration data is sufficient to register theuser.
 70. The method of claim 69, further comprising storing the logincredentials within a storage device of the merchant server.
 71. Themethod of claim 69, further comprising: generating the login credentialsbased on determining that the registration data is sufficient toregister the user, wherein sending the login credentials to the codescanner comprises sending the generated login credentials to the codescanner.
 72. The method of claim 69, further comprising: receiving thelogin credentials from the computing device, wherein sending the logincredentials to the code scanner comprises sending the received logincredentials to the code scanner.
 73. The method of claim 68, whereinsending the session identifier to the computing device comprises sendingdata embodying the non-textual representation of the session identifier.74. The method of claim 68, further comprising sending registration datafields to the code scanner.
 75. The method of claim 74, furthercomprising: receiving, from the code scanner, a request for the merchantserver to send the registration data fields to the code scanner, whereinsending the registration data fields to the code scanner comprisessending the registration data fields to the code scanner based onreceiving the request.
 76. The method of claim 68, further comprising:receiving, from the computing device, a request for the merchant serverto send the registration data to the computing device, wherein sendingthe registration data during the communication session comprises sendingthe registration data based on receiving the request.
 77. The method ofclaim 68, wherein determining that the registration data is sufficientto register the user comprises determining that the registration dataincludes data that corresponds respectively to one or more mandatorydata fields.
 78. The method of claim 68, further comprising: receivinglogin credentials from the code scanner; determining that the logincredentials correspond to the registered user; and sending, to the codescanner or the computing device, a message indicating that the logincredentials have been authenticated.
 79. The method of claim 68, whereinthe non-textual representation also represents an encryption key, andwherein the registration data is encrypted by the code scanner using theencryption key recovered by scanning the non-textual representation, themethod further comprising: sending the encryption key to the computingdevice; and prior to determining that the registration data issufficient to register the user, decrypting the registration data usingthe encryption key.
 80. The method of claim 79, wherein sending theencryption key comprises sending data embodying the non-textualrepresentation that represents the session identifier and the encryptionkey.
 81. A method performed by a merchant server, the method comprising:sending, to a computing device, a session identifier that identifies acommunication session between the merchant server and the computingdevice; receiving, from a code scanner, (i) the session identifier thatis recovered by the code scanner by scanning a non-textualrepresentation of the session identifier displayed by the computingdevice, and (ii) registration data for registering a user; determiningthat the registration data is insufficient to register the user; andsending, to the computing device during the communication session, (i)the registration data and (ii) a message indicating that additionalregistration data is necessary for registering the user.
 82. The methodof claim 81, further comprising: receiving the additional registrationdata from the computing device; determining that the registration dataand the additional registration data is insufficient to register theuser; and sending, to the computing device, a message indicating thatfurther registration data is necessary for registering the user.
 83. Themethod of claim 81, receiving the additional registration data from thecomputing device; determining that the registration data and theadditional registration data is sufficient to register the user; andsending, to the computing device, a message indicating the user has beenregistered.
 84. The method of claim 83, further comprising: generatinglogin credentials based on determining that the registration data andthe additional registration data is sufficient to register the user; andsending the login credentials to the code scanner.
 85. The method ofclaim 83, further comprising sending the additional registration data tothe code scanner.
 86. The method of claim 81, wherein sending thesession identifier to the computing device comprises sending dataembodying the non-textual representation of the session identifier. 87.A merchant server comprising: a processor; and a non-transitorycomputer-readable storage medium storing instructions that, whenexecuted by the processor, cause the merchant server to performfunctions comprising: sending, to a computing device, a sessionidentifier that identifies a communication session between the merchantserver and the computing device; receiving, from a code scanner, (i) thesession identifier that is recovered by the code scanner by scanning anon-textual representation of the session identifier displayed by thecomputing device, and (ii) registration data for registering a user;determining that the registration data is sufficient to register theuser; and sending, to the computing device during the communicationsession, (i) the registration data and (ii) a message indicating thatthe user has been registered.